背景
grafana默认使用sqlite3存储数据,数据量上升需调整为MySQL,涉及将SQLite数据转MySQL。 一开始搜索文档为sqlite to mysql,各种折腾,比较有参考意义的,如:https://study-database.readthedocs.io/zh/latest/%E6%95%B0%E6%8D%AE%E5%BA%9304sqlite%E8%BD%ACmysql.html#sqlitesql ,总结了各种方案,遇到的坑,虽然最后也没采用。如果直接转换,涉及字段类型text可能需转换成varchar,或者text,因此表结构最好直接通过grafana来生成。
解决
迁移过程的参考步骤
- 首先需要暂停 Grafana 服务,导出默认的 SQLite 数据库文件,如 grafana.db ;
- 可借助 Grafana 官方提供的工具 database-migrator 将数据库导出转化为支持 MySQL 协议的 SQL 文件;
- 修改 Grafana 配置文件 grafana.ini 数据库相关配置参数 -e "GF_DATABASE_URL=mysql://$db_username:$db_passwd@$db_host:$db_port/$db_name" 使用 MySQL 数据库;
- 重新启动 Grafana 让其在 MySQL 中设置数据库和表结构,初始化完再先关停下 Grafana ;
- 导入前面使用工具从 SQLLite 原生默认数据库中导出的 sql 数据到 MySQL 对应的 DB 中;
- 重新开启 Grafana 按理即可;
附:
- grafana官方文档:https://grafana.com/docs/grafana/latest/setup-grafana/installation/docker/
- database-migrator:https://github.com/grafana/database-migrator
Comments